Inflatable Air Mattress Autofill and Off Bed Pressure Adjustment

ABSTRACT

A method and system may include transmitting a signal to a pump of an air mattress to set the pressure of the air mattress to an initial pressure; receiving, at a central controller, a user preference condition for an automatic adjustment of the pressure in the air mattress; receiving, at the central controller, an indication that the air mattress is empty; and based on determining that the user preference condition has been met and receiving the indication: detecting a change in the pressure of the air mattress beyond a threshold value; and based on the detection, adjusting the pressure of the air mattress to the initial pressure.

CROSS-REFERENCES

This Application claims the benefit of priority to U.S. provisionalApplication No. 61/781,541, filed on Mar. 14, 2013, the disclosure ofwhich is incorporated herein in its entirety by reference.

The subject matter described in this application is related to subjectmatter disclosed in the following applications: U.S. Application Ser.No. 61/781,266 (Attorney Docket No. 3500.049PRV), filed on Mar. 14,2013, entitled “INFLATABLE AIR MATTRESS ALARM AND MONITORING SYSTEM”;U.S. Application Ser. No. 61/781,503 (Attorney Docket No. 3500.050PRV),filed on Mar. 14, 2013, entitled “INFLATABLE AIR MATTRESS SYSTEMARCHITECTURE”; U.S. Application Ser. No. 61/781,571 (Attorney Docket No.3500.052PRV), filed on Mar. 14, 2013, entitled “INFLATABLE AIR MATTRESSSLEEP ENVIRONMENT ADJUSTMENT AND SUGGESTIONS”; U.S. Application Ser. No.61/782,394 (Attorney Docket No. 3500.053PRV), filed on Mar. 14, 2013,entitled “INFLATABLE AIR MATTRESS SNORING DETECTION AND RESPONSE”; U.S.Application Ser. No. 61/781,296 (Attorney Docket No. 3500.054PRV), filedon Mar. 14, 2013, entitled “INFLATABLE AIR MATTRESS WITH LIGHT AND VOICECONTROLS”; U.S. Application Ser. No. 61/781,311 (Attorney Docket No.3500.055PRV), filed on Mar. 14, 2013, entitled “INFLATABLE AIR MATTRESSSYSTEM WITH DETECTION TECHNIQUES.” The contents of each of theabove-references U.S. patent applications are herein incorporated byreference in their entirety.

TECHNICAL FIELD

This patent document pertains generally to network systems and moreparticularly, but not by way of limitation, to an inflatable airmattress system architecture.

BACKGROUND

In various examples, an air mattress control system allows a user toadjust the firmness or position of an air mattress bed. The mattress mayhave more than one zone thereby allowing a left and right side of themattress to be adjusted to different firmness levels. Additionally, thebed may be adjustable to different positions. For example, the headsection of the bed may be raised up while the foot section of the bedstays in place. In various examples, two separate remote controls areused to adjust the position and firmness, respectively.

BRIEF DESCRIPTION OF DRAWINGS

Some embodiments are illustrated by way of example and not limitation inthe figures of the accompanying drawings in which:

FIG. 1 is a diagrammatic representation of an air bed system, accordingto an example.

FIG. 2 is a block diagram of various components of the air bed system ofFIG. 1, according to an example.

FIG. 3 is a block diagram of an air bed system architecture, accordingto an example

FIGS. 4-5 are flowcharts of methods to adjust the pressure of an airmattress, according to various examples.

FIG. 6 is a block diagram of machine in the example form of a computersystem within which a set instructions, for causing the machine toperform any one or more of the methodologies discussed herein, may beexecuted.

DETAILED DESCRIPTION

FIG. 1 is a diagrammatic representation of air bed system 10 in anexample embodiment. System 10 can include bed 12, which can comprise atleast one air chamber 14 surrounded by a resilient border 16 andencapsulated by bed ticking 18. The resilient border 16 can comprise anysuitable material, such as foam.

As illustrated in FIG. 1, bed 12 can be a two chamber design having afirst air chamber 14A and a second air chamber 14B. First and second airchambers 14A and 14B can be in fluid communication with pump 20. Pump 20can be in electrical communication with a remote control 22 via controlbox 24. Remote control 22 can communicate via wired or wireless meanswith control box 24. Control box 24 can be configured to operate pump 20to cause increases and decreases in the fluid pressure of first andsecond air chambers 14A and 14B based upon commands input by a userthrough remote control 22. Remote control 22 can include display 26,output selecting means 28, pressure increase button 29, and pressuredecrease button 30. Output selecting means 28 can allow the user toswitch the pump output between the first and second air chambers 14A and14B, thus enabling control of multiple air chambers with a single remotecontrol 22. For example, output selecting means may by a physicalcontrol (e.g., switch or button) or an input control displayed ondisplay 26. Alternatively, separate remote control units can be providedfor each air chamber and may each include the ability to controlmultiple air chambers. Pressure increase and decrease buttons 29 and 30can allow a user to increase or decrease the pressure, respectively, inthe air chamber selected with the output selecting means 28. Adjustingthe pressure within the selected air chamber can cause a correspondingadjustment to the firmness of the air chamber.

FIG. 2 is a block diagram detailing data communication between certaincomponents of air bed system 10 according to various examples. As shownin FIG. 2, control box 24 can include power supply 34, processor 36,memory 37, switching means 38, analog to digital (A/D) converter 40, andradios for communication with remotes and smartphones. Switching means38 can be, for example, a relay or a solid state switch. Switching means38 can be located in the pump 20 rather than the control box 24.

Pump 20 and remote control 22 can be in two-way communication with thecontrol box 24. Pump 20 can include a motor 42, a pump manifold 43, arelief valve 44, a first control valve 45A, a second control valve 45B,and a pressure transducer 46, and can be fluidly connected with thefirst air chamber 14A and the second air chamber 14B via a first tube48A and a second tube 48B, respectively. First and second control valves45A and 45B can be controlled by switching means 38, and can be operableto regulate the flow of fluid between pump 20 and first and second airchambers 14A and 14B, respectively.

In an example, pump 20 and control box 24 can be provided and packagedas a single unit. Alternatively, pump 20 and control box 24 can beprovided as physically separate units.

In operation, power supply 34 can receive power, such as 110 VAC power,from an external source and can convert the power to various formsrequired by certain components of the air bed system 10. Processor 36can be used to control various logic sequences associated with operationof the air bed system 10, as will be discussed in further detail below.

The example of the air bed system 10 shown in FIG. 2 contemplates twoair chambers 14A and 14B and a single pump 20. However, other examplesmay include an air bed system having two or more air chambers and one ormore pumps incorporated into the air bed system to control the airchambers. In an example, a separate pump may be associated with each airchamber of the air bed system or a pump may be associated with multiplechambers of the air bed system. Separate pumps may allow each airchamber to be inflated or deflated independently and simultaneously.Furthermore, additional pressure transducers may also be incorporatedinto the air bed system such that, for example, a separate pressuretransducer may be associated with each air chamber.

In the event that the processor 36 sends a decrease pressure command toone of air chambers 14A or 14B, switching means 38 can be used toconvert the low voltage command signals sent by processor 36 to higheroperating voltages sufficient to operate relief valve 44 of pump 20 andopen control valves 45A or 45B. Opening relief valve 44 can allow air toescape from air chamber 14A or 14B through the respective air tube 48Aor 48B. During deflation, pressure transducer 46 can send pressurereadings to processor 36 via the AID converter 40. The A/D converter 40can receive analog information from pressure transducer 46 and canconvert the analog information to digital information useable byprocessor 36. Processor 36 may send the digital signal to remote control22 to update display 26 on the remote control in order to convey thepressure information to the user

In the event that processor 36 sends an increase pressure command, pumpmotor 42 can be energized, sending air to the designated air chamberthrough air tube 48A or 48B via electronically operating correspondingvalve 45A or 45B. While air is being delivered to the designated airchamber in order to increase the firmness of the chamber, pressuretransducer 46 can sense pressure within pump manifold 43. Again,pressure transducer 46 can send pressure readings to processor 36 viaA/D converter 40. Processor 36 can use the information received from AIDconverter 40 to determine the difference between the actual pressure inair chamber 14A or 14B and the desired pressure. Processor 36 can sendthe digital signal to remote control 22 to update display 26 on theremote control in order to convey the pressure information to the user.

Generally speaking, during an inflation or deflation process, thepressure sensed within pump manifold 43 provides an approximation of thepressure within the air chamber. An example method of obtaining a pumpmanifold pressure reading that is substantially equivalent to the actualpressure within an air chamber is to turn off pump 20, allow thepressure within the air chamber 14A or 14B and pump manifold 43 toequalize, and then sense the pressure within pump manifold 43 withpressure transducer 46. Thus, providing a sufficient amount of time toallow the pressures within pump manifold 43 and chamber 14A or 14B toequalize may result in pressure readings that are accurateapproximations of the actual pressure within air chamber 14A or 14B. Invarious examples, the pressure of 48A/B is continuously monitored usingmultiple pressure sensors

In an example, another method of obtaining a pump manifold pressurereading that is substantially equivalent to the actual pressure withinan air chamber is through the use of a pressure adjustment algorithm. Ingeneral, the method can function by approximating the air chamberpressure based upon a mathematical relationship between the air chamberpressure and the pressure measured within pump manifold 43 (during bothan inflation cycle and a deflation cycle), thereby eliminating the needto turn off pump 20 in order to obtain a substantially accurateapproximation of the air chamber pressure. As a result, a desiredpressure setpoint within air chamber 14A or 14B can be achieved withoutthe need for turning pump 20 off to allow the pressures to equalize. Thelatter method of approximating an air chamber pressure usingmathematical relationships between the air chamber pressure and the pumpmanifold pressure is described in detail in U.S. application Ser. No.12/936,084, the entirety of which is incorporated herein by reference.

FIG. 3 is illustrates an example air bed system architecture 300.Architecture 300 includes bed 301, central controller 302, firmnesscontroller 304, articulation controller 306, temperature controller 308,external network device 310, remote controllers 312, 314, and voicecontroller 316. While described as using an air bed, the systemarchitecture may also be used with other types of beds.

As illustrated in FIG. 3, network bed architecture 300 is configured asa star topology with central controller 302 and firmness controller 304functioning as the hub and articulation controller 306, temperaturecontroller 308, external network device 310, remote controls 312, 314,and voice controller 316 functioning as possible spokes, also referredto herein as components. Thus, in various examples, central controller302 acts a relay between the various components.

In other examples, different topologies may be used. For example, thecomponents and central controller 302 may be configured as a meshnetwork in which each component may communicate with one or all of theother components directly, bypassing central controller 302. In variousexamples, a combination of topologies may be used. For example, remotecontroller 312 may communicate directly to temperature controller 308but also relay the communication to central controller 302.

In yet another example, central controller 302 listens to communications(e.g., control signals) between components even if the communication isnot being relayed through central controller 302. For example, considera user sending a command using remote 312 to temperature controller 308.Central controller 302 may listen for the command and check to determineif instructions are stored at central controller 302 to override thecommand (e.g., it conflicts with a previous setting). Central controller302 may also log the command for future use (e.g., determining a patternof user preferences for the components).

In various examples, the controllers and devices illustrated in FIG. 3may each include a processor, a storage device, and a network interface.The processor may be a general purpose central processing unit (CPU) orapplication-specific integrated circuit (ASIC). The storage device mayinclude volatile or non-volatile static storage (e.g., Flash memory,RAM, EPROM, etc.). The storage device may store instructions which, whenexecuted by the processor, configure the processor to perform thefunctionality described herein. For example, a processor of firmnesscontrol 304 may be configured to send a command to a relief valve todecrease the pressure in a bed.

In various examples, the network interface of the components may beconfigured to transmit and receive communications in a variety of wiredand wireless protocols. For example, the network interface may beconfigured to use the 802.11 standards (e.g., 802.11a/b/c/g/n/ac), PANnetwork standards such as 802.15.4 or Bluetooth, infrared, cellularstandards (e.g., 3G/4G etc.), Ethernet, and USB for receiving andtransmitting data. The previous list is not intended to exhaustive andother protocols may be used. Not all components of FIG. 3 need to beconfigured to use the same protocols. For example, remote control 312may communicate with central controller 302 via Bluetooth whiletemperature controller 308 and articulation controller 306 are connectedto central controller using 802.15.4. Within FIG. 3, the lightningconnectors represent wireless connections and the solid lines representwired connections, however, the connections between the components isnot limited to such connections and each connection may be wired orwireless.

Moreover, in various examples, the processor, storage device, andnetwork interface of a component may be located in different locationsthan various elements used to effect a command. For example, as in FIG.1, firmness controller 302 may have a pump that is housed in a separateenclosure than the processor used to control the pump. Similarseparation of elements may be employed for the other controllers anddevices in FIG. 3.

In various examples, firmness controller 304 is configured to regulatepressure in an air mattress. For example, firmness controller 304 mayinclude a pump such as described with reference to FIG. 2 (see e.g.,pump 20). Thus, in an example, firmness controller 304 may be respond tocommands to increase or decrease pressure in the air mattress. Thecommands may be received from another component or based on storedapplication instruction that are part of firmness controller 304.

As illustrated in FIG. 3 central controller 302 includes firmnesscontroller 304. Thus, in an example, the processor of central controller302 and firmness control 304 may be the same processor. Furthermore, thepump may also be part of central controller 302. Accordingly, centralcontroller 302 may be responsible for pressure regulation as well asother functionality as described in further portions of this disclosure.

In various examples, articulation controller 306 is configured to adjustthe position of a bed (e.g., bed 301) by adjusting the foundation thatsupports the bed. In an example, separate positions may be set for twodifferent beds (e.g., two twin beds placed next to each other). Thefoundation may include more than one zone that may be independentlyadjusted. Articulation control 306 may also be configured to providedifferent levels of massage to a person on the bed.

In various examples, temperature controller 308 is configured toincrease, decrease, or maintain the temperature of a user. For example,a pad may be placed on top of or be part of the air mattress. Air may bepushed through the pad and vented to cool off a user of the bed.Conversely, the pad may include a heating element that may be used tokeep the user warm. In various examples, temperature controller 308receives temperature readings from the pad.

In various examples, additional controllers may communicate with centralcontroller 302. These controllers may include, but are not limited to,illumination controllers for turning on and off light elements placed onand around the bed and outlet controllers for controlling power to oneor more power outlets.

In various examples, external network device 310, remote controllers312, 314 and voice controller 316 may be used to input commands (e.g.,from a user or remote system) to control one or more components ofarchitecture 300. The commands may be transmitted from one of thecontrollers 312, 314, or 316 and received in central controller 302.Central controller 302 may process the command to determine theappropriate component to route the received command. For example, eachcommand sent via one of controllers 312, 314, or 316 may include aheader or other metadata that indicates which component the command isfor. Central controller 302 may then transmit the command via centralcontroller 302's network interface to the appropriate component.

For example, a user may input a desired temperature for the user's bedinto remote control 312. The desired temperature may be encapsulated ina command data structure that includes the temperature as well asidentifies temperature controller 308 as the desired component to becontrolled. The command data structure may then be transmitted viaBluetooth to central controller 302. In various examples, the commanddata structure is encrypted before being transmitted. Central controller302 may parse the command data structure and relay the command totemperature controller 308 using a PAN. Temperature controller 308 maybe then configure its elements to increase or decrease the temperatureof the pad depending on the temperature originally input into remotecontrol 312.

In various examples, data may be transmitted from a component back toone or more of the remote controls. For example, the current temperatureas determined by a sensor element of temperature controller 308, thepressure of the bed, the current position of the foundation or otherinformation may be transmitted to central controller 302. Centralcontroller 302 may then transmit the received information and transmitit to remote control 312 where it may be displayed to the user.

In various examples, multiple types of devices may be used to inputcommands to control the components of architecture 300. For example,remote control 312 may be a mobile device such as a smart phone ortablet computer running an application. Other examples of remote control312 may include a dedicated device for interacting with the componentsdescribed herein. In various examples, remote controls 312/314 include adisplay device for displaying an interface to a user. Remote control312/314 may also include one or more input devices. Input devices mayinclude, but are not limited to, keypads, touchscreen, gesture, motionand voice controls.

Remote control 314 may be a single component remote configured tointeract with one component of the mattress architecture. For example,remote control 314 may be configured to accept inputs to increase ordecrease the air mattress pressure. Voice controller 316 may beconfigured to accept voice commands to control one or more components.In various examples, more than one of the remote controls 312/314 andvoice controller 316 may be used.

With respect to remote control 312, the application may be configured topair with one or more central controllers. For each central controller,data may be transmitted to the mobile device that includes a list ofcomponents linked with the central controller. For example, considerthat remote control 312 is a mobile phone and that the application hasbeen authenticated and paired with central controller 302. Remotecontrol 312 may transmit a discovery request to central controller 302to inquiry about other components and available services. In response,central controller 302 may transmit a list of services that includesavailable functions for adjusting the firmness of the bed, position ofthe bed, and temperature of the bed. In various embodiments, theapplication may then display functions for increasing/decreasingpressure of the air mattress, adjusting positions of the bed, andadjusting temperature. If components are added/removed to thearchitecture under control of central controller 302, an updated listmay be transmitted to remote control 312 and the interface of theapplication may be adjusted accordingly.

In various examples, central controller 302 is configured as adistributor of software updates to components in architecture 300. Forexample, a firmware update for temperature controller 308 may becomeavailable. The update may be loaded into a storage device of centralcontroller 302 (e.g., via a USB interface or wireless techniques). Inwireless applications, the central controller 302 may, for example,receive updates from the cloud either from Wi-Fi or from a mobileconnection over Bluetooth. Central controller 302 may then transmit theupdate to temperature controller 308 with instructions to update.Temperature controller 308 may attempt to install the update. A statusmessage may be transmitted from temperature controller 308 to centralcontroller 302 indicating the success or failure of the update.

In various examples, central controller 302 is configured to analyzedata collected by a pressure transducer (e.g., transducer 46 withrespect to FIG. 2) to determine various states of a person lying on thebed. For example, central controller 302 may determine the heart rate orrespiration rate of a person lying in the bed. Additional processing maybe done using the collected data to determine a possible sleep state ofthe person. For example, central controller 302 may determine when aperson falls asleep and, while asleep, the various sleep states of theperson.

In various example, external network device 310 includes a networkinterface to interact with an external server for processing and storageof data related to components in architecture 300. For example, thedetermined sleep data as described above may be transmitted via anetwork (e.g., the Internet) from central controller 302 to externalnetwork device 310 for storage. In an example, the pressure transducerdata may be transmitted to the external server for additional analysis.The external network device 310 may also analyze and filter the databefore transmitting it to the external server.

In an example, diagnostic data of the components may also be routed toexternal network device 310 for storage and diagnosis on the externalserver. For example, if temperature controller 308 detects an abnormaltemperature reading (e.g., a drop in temperature over one minute thatexceeds a set threshold) diagnostic data (sensor readings, currentsettings, etc.) may be wireless transmitted from temperature controller308 to central controller 302. Central controller 302 may then transmitthis data via USB to external network device 310. External device 310may wirelessly transmit the information to an WLAN access point where itis routed to the external server for analysis.

In various examples, the pressure in the air mattress may adjust withoutadditional user input. For example, one or more components of the airbed system architecture may detect that a user is no longer present onthe air mattress and increase the pressure to the maximum pressureallowed by the air mattress or adjust the pressure in response toenvironmental factors.

FIG. 4 is a flowchart of method 400 to automatically increase thepressure of an air mattress, according to various examples. For labelingpurposes, and not by way of limitation, method 400 is referred to hereinas the “auto-fill” method or feature. Additionally, while many of theoperations of method 400 are described as being performed on centralcontroller 302, other components may be used. For example, firmnesscontroller 304 may store the preferences and determine if the auto-fillfeature should be engaged as further described below. In variousexamples, central controller 302 acts as a relay of the preferences asdescribed with respect to FIG. 3.

At block 402, in various examples, user preferences related to theauto-fill method are received at central controller 302. The preferencesmay be received from one or more of remotes 312, 314, and 316. Forexample, using an application running on smart phone app 312, a userinterface (UI) may be presented to the user. The UI may include inputindicia (check boxes, radio buttons, input forms, etc.) for thepreferences related to the auto-fill method. A user may interact (e.g.,click, activate) with the input indicia to set the preferences. Thepreferences may be stored in a storage device of remote 312 ortransmitted to central controller 302 for storage. In various examples,the preferences may be stored in a database (relational, non-relational,flat file, etc.) or in a structured file (e.g., XML). The preferencesmay also have default values if the user does not input a value. Invarious examples, not all of the preferences are shown to a user.

In various examples, the preferences may include an enabling preference,a delay preference, a time preference, and an auto-fill pressurepreference. In an example, the enabling preference is a Booleanrepresenting the user's preference to use the auto-fill feature. Whilethree preferences are described, various examples may use less than allthree preferences; for example, only the enabling preference may beused. If the enabling preference indicates that the user does not wantto use the auto-fill feature, the remaining preferences may not be shownor not be selectable by the user.

In an example, the delay preference is a threshold that indicates theuser's preference for when the auto-fill feature should be engaged. Forexample, the auto-fill feature may turn on when no one has been on thebed for 15 minutes. The delay preference may be set in a variety oftimes units including seconds, minutes, and hours.

In an example, the time preference indicates one or more time periods ofday when the auto-fill feature can be used. For example, the user mayindicate that from 9:00 AM to 5:00 PM the auto-fill feature can be used.Thus, if during the set time period the other auto-fill conditions aremet, then the air mattress may auto-fill to the set pressure. If theconditions are otherwise met, but the current time of day is not withinthe user's defined period, auto-filling may not occur.

In an example, the auto-fill pressure preference is a numerical valueassociated with a pressure of the air mattress to use when the auto-fillfeature is engaged. The auto-fill pressure may be limited to a range(e.g., 0-100). For example, a “100” setting may be the maximum pressureallowed in the air mattress as indicated in a storage device of centralcontroller 302 or firmness controller 304. This setting may be used, forexample, when the user wants to have a full bed for easier bed making. A‘0’ setting may be the lowest allowable pressure as indicated in astorage device of central controller 302 or firmness controller 304.Thus, a ‘0’ setting may not directly correlate to having no pressure inthe air mattress.

At block 404, in an example, central controller 302 receives anindication that nobody is on an air mattress. The indication may bereceived from a variety of sources. For example, firmness controller 304or central controller 302 may monitor the pressure of the air mattressand if a pressure change exceeds a threshold, firmness controller 304may classify the change as an “empty bed” event—the label “empty bed” isused for illustration purposes only and other terms may be used withoutdeparting from the scope of this disclosure.

In various examples, central controller 302 may receive an indicationfrom external network device 310 that an “empty bed” has been detected.For example, external network device 310 may process the pressurereadings from transducer 46 to determine the presence of one or morepeople on the air mattress. Similarly, the pressure data may betransmitted to an external server for further processing. Based on theprocessing in external network device 310 alone or in combination withthe external server, external network device 310 may transmit data backto central controller 302 indicating whether or not a person is believedto be on the air mattress.

In an example, central controller 302 may detect user presence via grosspressure changes. For example, the central controller 302 and pressuretransducer 46 (of FIG. 2) may be used to monitor the air pressure in theair mattress of bed 301. If the user sits or lies down on the airmattress, the air pressure in the air mattress changes, e.g., increases,due to the additional weight of the user, which results in a grosspressure change. Central controller 302 may determine whether the useris now on the bed based on the gross pressure change, e.g., over sometime period. For example, by determining a rate of change of pressure,e.g., over one to ten minutes, and comparing the determined rate ofchange to a threshold value, central controller 302 may determinewhether the user is now on the bed.

In an example implementation, central controller 302 may detect userpresence using temperature changes detected in the mattress, e.g., usingone or more temperature sensors positioned in or on the mattress. Thetemperature sensors and the central controller 302 may detect a rise intemperature, e.g., over a specified period of time, and determine that auser is present in the bed. For example, if central controller 302detects a rise in temperature and then determines that the detected risein temperature was not caused by the system's temperature controller308, central controller 302 may determine that the user is present.

At block 406, in various examples, central controller 302 determines ifthe auto-fill feature should be engaged. For example, upon receiving theindication that nobody is the air mattress, an initial check may be madeto determine if a user has enabled the auto-fill feature. The check maybe done by accessing the preference as stored on a storage device. Ifthe feature is not enabled then method 400 may end.

In various examples, if a time preference has not been set by the user,central controller 302 may start a timer. Conversely, if a timepreference has been set, central controller 302 may determine if thetime of day when the indication was received at central controller 302is within the time window as set by the user. If the time is within thewindow, the timer may start. In various examples, if the time theindication is received is not in the timer period, but as time passesthe time enters the time preference window, the timer may start.

In various examples, the timer increments until either the thresholdtime as indicated by the delay preference is reached or an indication isreceived (e.g., at central controller 302) that a presence has beendetected on the bed. For example, if the delay preference is 15 minutes,upon the timer reaching 15 minutes, the auto-fill feature may beactivated. If, however, an indication is received that someone is now onthe bed, the timer may be reset to 0 and control may flow back to block404. Similarly, if someone gets off the bed and the time window closesbefore the timer has expired, the timer may be reset to 0.

In various examples, upon activation of the auto-fill feature, the bedmay increase to the pressure as indicated in the auto-fill pressurepreference. In an example, if no auto-fill pressure preference has beenset, a default value of ‘100’ may be used. The mechanism by which thepressure increases may include sending a signal to a pump as describedherein. In an example, the bed maintains the auto-fill pressure untilreceiving another pressure value (e.g., from a user or automatedprocess).

FIG. 5 is a flowchart of method 500 to automatically adjust the pressureof an air mattress, according to various examples. For labelingpurposes, and not by way of limitation, method 500 is referred to hereinas the “auto-adjust” method or feature. Additionally, while many of theoperations of method 500 are described as being performed on centralcontroller 302, other components may be used. For example, firmnesscontroller 304 may monitor the pressure and determine if the pressureshould be adjusted as further described below. In various examples,central controller 302 acts as a relay of the preferences as describedwith respect to FIG. 3.

A user may have initially set the pressure of an air mattress (e.g.,using one or more remotes as described herein) to a value of “50.” Theuser set value may correspond to a PSI level of the air mattress. Thus,after a user sets the value, the user may expect the air mattress tofeel the same the next time he or she sleeps on the bed. However, due toenvironmental changes (e.g., temperature, pressure of the air in theroom) or possible mechanical failures (e.g., a leak) the pressure in theair mattress may change over time. Thus, the user may feel the need toincrease the value to achieve the same pressure. In various examples,method 500 automatically adjust the pressure in the air mattress tomaintain pressure within a specified range to compensate for theseenvironmental and possible mechanical factors such that the when theuser sleeps in the bed from night to night the bed maintains the samepressure.

At block 502, in various examples, user preferences related to theauto-adjust method are received at central controller 302. Thepreferences may be received from one or more of remotes 312, 314, and316. For example, using an application running on smart phone app 312, auser interface (UI) may be presented to the user. The UI may includeinput indicia (check boxes, radio buttons, input forms, etc.) for thepreferences related to the auto-adjust method. A user may interact withthe input indicia to set the preferences. The preferences may be storedin a storage device of remote 312 or transmitted to central controller302 for storage. In various examples, the preferences may be stored in adatabase (relational, non-relational, flat file, etc.) or in astructured file (e.g., XML). The preferences may also have defaultvalues if the user does not input a value. In various examples, not allof the preferences are shown to a user. For example, the auto-adjustfeature may not be user modified in any way (i.e., it is a feature ofthe bed that the user may not turn off).

In various examples, the preferences may include an enabling preference,a time preference, and a delay preference. While three preferences aredescribed, various examples may use less than all three preferences. Inan example, the enabling preference is a Boolean representing the user'spreference to use the auto-adjust feature. If the enabling preferenceindicates that the user does not want to use the auto-adjust feature,the remaining preferences may not be shown or not be selectable by theuser.

In an example, the time preference indicate one or more time periods ofday when the auto-adjust feature can be used. For example, the user mayindicate that from 9:00 AM to 5:00 PM the auto-adjust feature can beused. Thus, if during the set time period that other auto-adjustconditions are met, then the air mattress may auto-adjust the pressurein the bed. If the conditions are otherwise met, but the current time ofday is not within the user's defined period, auto-adjusting will notoccur. In an example, an option is presented to the user to always havethe auto-adjust feature enabled regardless of the time of day.

In an example, the delay preference is a threshold that indicates theuser's preference for when the auto-adjust feature should be engaged.For example, the auto-adjust feature may turn on when no one has been onthe bed for 15 minutes. The delay preference may be set in a variety oftimes units, including seconds, minutes, and hours.

At block 504, in an example, central controller 302 receives anindication that nobody is on an air mattress. The indication may bereceived from a variety of sources. For example, firmness controller 304or central controller 302 may monitor the pressure of the air mattressand if a pressure change exceeds a threshold, firmness controller 304may classify the change as an “empty bed” event—the label “empty bed” isused for illustration purposes only and other terms may be used withoutdeparting from the scope of this disclosure.

In various examples, central controller 302 receives an indication fromexternal network device 310 that an “empty bed” has been detected. Forexample, external network device 310 may process the pressure readingsfrom transducer 46 to determine the presence of one or more people onthe air mattress. Similarly, the pressure data may be transmitted to anexternal server for further processing. Based on the processing inexternal network device 310 alone or in combination with the externalserver, external network device 310 may transmit data back to centralcontroller 302 indicating whether or not a person is believed to be onthe air mattress.

At block 506, in various embodiments, the pressure of the bed ismonitored (e.g., via the transducer of the air mattress) when it isindicated that no one is on the bed. This may be done, for example, bycentral controller 302. Central controller 302 may use a baselinepressure reading (e.g., the pressure that correlates to the user setvalue) and compare it to pressure readings when no one is on the bed.For example, every minute a pressure reading may be received at centralcontroller 302 and compared to the baseline pressure reading.

At block 508, in various examples, it is determined if the auto-adjustfeature should be activated. For example, upon receiving the indicationthat nobody is the air mattress, an initial check may be made todetermine if a user has enabled the auto-adjust feature. The check maybe done by accessing the preference as stored on a storage device. Ifthe feature is not enabled then method 500 may end.

In various examples, if a time preference has not been set by the user,central controller 302 may start a timer. Conversely, if a timepreference has been set, central controller 302 may determine if thetime of day when the indication was received at central controller 302is within the time window as set by the user. If the time is within thewindow, the timer may start. In various examples, if the time theindication is received is not in the timer period, but as time passesthe time enters the time preference window, the timer may start.

In various examples, the timer increments until either the thresholdtime as indicated by the delay preference is reached or an indication isreceived (e.g., at central controller 302) that a presence has beendetected on the bed. For example, if the delay preference is 15 minutes,upon the timer reaching 15 minutes, the auto-adjust feature may beactivated. If, however, an indication is received that someone is now onthe bed, the timer may be reset to 0 and control may flow back to block504. Similarly, if someone gets off the bed and the time window closesbefore the timer has expired, the timer may be reset to 0.

In various examples, assuming the conditions of the user preferenceshave been met, central controller 302 determines if the differencebetween the baseline reading and sampled reading has changed beyond aset threshold (e.g., 2 PSI). If the pressure exceeds the threshold,central controller 302 may send a signal to the pump toincrease/decrease the pressure back to the baseline. In variousexamples, there is a second timer that is used before the signal issent. For example, the difference may need to exceed the threshold forat least 5 minutes before sending the signal. In various examples, thetime period at which the pressure is sampled, the second timer value,and the threshold change may be modified by user input (e.g., atechnician) or via software updates.

In various examples, if the user has activated both the auto-adjust andauto-fill features there may be a conflict. For example, if a user has apressure value of “50” and if the pressure in the air-mattress is set to100 via the auto-fill feature, the pressure may be higher than thethreshold change for the auto-adjust feature which may in turn lower thepressure. In an example, if the pressure change it due to a user setfeature, the auto-adjust feature may be disabled. A notification may bedisplayed to the user on one or more of the remotes indicating that theauto-adjust feature is not available with auto-fill. In an example, atthe time the user is setting preferences for these features, if there isan incompatibility detected a prompt may be displayed alerting the userto change one or more of the settings.

In various examples, architecture provides additional features based onpresence detection. For example, central controller 302 may detect thatan air mattress is leaking (e.g., by detecting pressure changes despiteenvironmental factors staying the same) and increase air flow to an airchamber to compensate. Additionally, central controller 302 may transmitan electronic message to a person when a user leaves the bed (e.g., acaregiver may be notified that a patient is out of bed). If the bed isbeing used in a hospitality setting, a maid service may be notified whena person has gotten out of bed. Settings for the above features may beset in a similar fashion as described above with respect to theauto-adjust and auto-fill features.

In another example, an auto-restore feature may be offered such thatwhen the architecture detects a user is back in bed past a certain timeat night (e.g., a user changeable time) architecture 300 mayautomatically change any component settings back to the way they werethe night before. In such a way, a user may change components throughoutthe day, and system 300 may automatically set them back to a “sleep”state, based on the previous night or stored user preference, when theuser gets back into bed to sleep for the night.

Example Machine Architecture and Machine-Readable Medium

FIG. 6 is a block diagram of machine in the example form of a computersystem 600 within which instructions, for causing the machine to performany one or more of the methodologies discussed herein, may be executed.In alternative embodiments, the machine operates as a standalone deviceor may be connected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in server-client network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine may be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting instructions (sequential or otherwise) that specify actions tobe taken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The example computer system 600 includes a processor 602 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU), ASIC ora combination), a main memory 604 and a static memory 606, whichcommunicate with each other via a bus 608. The computer system 600 mayfurther include a video display unit 610 (e.g., a liquid crystal display(LCD) or a cathode ray tube (CRT)). The computer system 600 alsoincludes an alphanumeric input device 612 (e.g., a keyboard,touchscreen), a user interface (UI) navigation device 614 (e.g., amouse), a disk drive unit 616, a signal generation device 618 (e.g., aspeaker) and a network interface device 620.

Machine-Readable Medium

The disk drive unit 616 includes a machine-readable medium 622 on whichis stored one or more sets of instructions and data structures (e.g.,software) 624 embodying or utilized by any one or more of themethodologies or functions described herein. The instructions 624 mayalso reside, completely or at least partially, within the main memory604 and/or within the processor 602 during execution thereof by thecomputer system 600, the main memory 604 and the processor 602 alsoconstituting machine-readable media.

While the machine-readable medium 622 is shown in an example embodimentto be a single medium, the term “machine-readable medium” may include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore instructions or data structures. The term “machine-readable medium”shall also be taken to include any tangible medium that is capable ofstoring, encoding or carrying instructions for execution by the machineand that cause the machine to perform any one or more of themethodologies of the present invention, or that is capable of storing,encoding or carrying data structures utilized by or associated with suchinstructions. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, andoptical and magnetic media. Specific examples of machine-readable mediainclude non-volatile memory, including by way of example semiconductormemory devices, e.g., Erasable Programmable Read-Only Memory (EPROM),Electrically Erasable Programmable Read-Only Memory (EEPROM), and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

Transmission Medium

The instructions 624 may further be transmitted or received over acommunications network 626 using a transmission medium. The instructions624 may be transmitted using the network interface device 620 and anyone of a number of well-known transfer protocols (e.g., HTTP). Examplesof communication networks include a local area network (“LAN”), a widearea network (“WAN”), the Internet, mobile telephone networks, Plain OldTelephone (POTS) networks, and wireless data networks (e.g., WiFi andWiMax networks). The term “transmission medium” shall be taken toinclude any intangible medium that is capable of storing, encoding orcarrying instructions for execution by the machine, and includes digitalor analog communications signals or other intangible media to facilitatecommunication of such software.

Although an embodiment has been described with reference to specificexample embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the invention. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof, show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be utilized and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. This Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled. As itcommon, the terms “a” and “an” may refer to one or more unless otherwiseindicated.

1-2. (canceled)
 3. A system comprising: a bed comprising: an airmattress having at least one inflatable bladder; a pressure sensorconfigured to sense pressure in the air mattress; and a controllerconfigured to: adjust the pressure of the air mattress; and receivesensed pressures from the pressure sensor; a server that is physicallyseparated from the bed and that is in data communication with thecontroller, the server configured to: store user preferences related toan auto-adjust feature of the bed; determine that the bed does not havea user laying on the bed; wherein the controller is further configuredto: responsive to the determination that the bed does not have a userlaying on the bed and responsive to a determination that a userpreference has been met: adjusting the pressure of the air mattress toan unoccupied pressure value; and maintain the air mattress at theunoccupied pressure value.
 4. The system of claim 1, wherein: the serveris further configured to send to the controller an indication that thebed does not have a user laying on the bed; and the controller isconfigured to determine that the user preference has been met.
 5. Thesystem of claim 1, wherein the user preferences comprise one of thegroup consisting of i) a time preference that indicates one or moretimes periods of the day when the auto-adjust feature can be used andii) a delay preference that includes a threshold that indicates theuser's preference for when the auto-adjust feature should be engaged. 6.The system of claim 1, wherein the user preference comprises both: atime preference that indicates one or more times periods of the day whenthe auto-adjust feature can be used; and a delay preference thatincludes a threshold that indicates the user's preference for when theauto-adjust feature should be engaged.
 7. The system of claim 1, whereinthe bed further comprises an external device configured to: receive,from the pressure sensor, data of the sensed pressures of the airmattress; and transmit, to the server, the data of the sensed pressuresof the air mattress.
 8. The system of claim 5, wherein the externaldevice is further configured to filter the data before transmitting thedata to the server.
 9. The system of claim 1, wherein the controller isconfigured to maintain the air mattress at the unoccupied pressure valuewithout user input.
 10. The system of claim 1, wherein the determinationthat the bed does not have a user laying on the bed is made based on i)data of sensed pressure from the pressure sensor and ii) other data. 11.The system of claim 1, wherein the determination that the bed does nothave a user laying on the bed is made based only on data other than dataof sensed pressure from the pressure sensor.
 12. A system comprising: abed comprising: an air mattress having at least one inflatable bladder;a pressure sensor configured to sense pressure in the air mattress; anda controller configured to: adjust the pressure of the air mattress; andreceive sensed pressures from the pressure sensor; a server that isphysically separated from the bed and that is in data communication withthe controller, the server configured to: determine that the bed doesnot have a user laying on the bed; wherein the controller is furtherconfigured to: responsive to a determination that the bed does not havea user laying on the bed and responsive to a determination that a userpreference related to an auto-fill feature has been met: adjusting thepressure of the air mattress to an empty bed pressure; and maintainingthe air mattress at the empty bed pressure.
 13. The system of claim 10,wherein the controller is configured to store user preferences.
 14. Thesystem of claim 10, wherein: the server is further configured to send tothe controller an indication that the bed does not have a user laying onthe bed; and the controller is configured to determine that the userpreference has been met.
 15. The system of claim 10, wherein the userpreferences comprise one of the group consisting of i) a time preferencethat indicates one or more times periods of the day when the auto-fillfeature can be used and ii) a delay preference that includes a thresholdthat indicates the user's preference for when the auto-fill featureshould be engaged.
 16. The system of claim 10, wherein the userpreference comprises both: a time preference that indicates one or moretimes periods of the day when the auto-fill feature can be used; and adelay preference that includes a threshold that indicates the user'spreference for when the auto-fill feature should be engaged.
 17. Thesystem of claim 10, wherein the bed further comprises an external deviceconfigured to: receive, from the pressure sensor, data of the sensedpressures of the air mattress; and transmit, to the server, the data ofthe sensed pressures of the air mattress.
 18. The system of claim 15,wherein the external device is further configured to filter the databefore transmitting the data to the server.
 19. The system of claim 10,wherein the controller is configured to maintain the air mattress at theempty bed pressure without user input.
 20. The system of claim 10,wherein the determination that the bed does not have a user laying onthe bed is made based on i) data of sensed pressure from the pressuresensor and ii) other data.
 21. The system of claim 10, wherein thedetermination that the bed does not have a user laying on the bed ismade based only on data other than data of sensed pressure from thepressure sensor.